<template>

  <!-- 列表容器 -->
  <div class="goods-list">

    <!-- 列表中每一项 -->
    <router-link
        tag="div"
        v-for="item in goodsList"
        :to="'/home/goodsInfo/' + item.id"
        class="goods-item"
        :key="item.id">

      <!-- 图片 -->
      <img :src="item.img_url" alt="">

      <!-- 标题 -->
      <h3 class="good-title">{{ item.title }}</h3>

      <!-- 内容 -->
      <div class="info">

        <!-- 价格展示 -->
        <p>
          <span class="price-new">￥{{ item.sell_price }}</span>
          <span class="price-old">￥{{ item.market_price }}</span>
        </p>

        <p class="sell">
          <span>热卖中</span>
          <span>剩余量{{ item.stock_quantity }}件</span>
        </p>

      </div>

    </router-link>

    <!-- 加载更多的按钮 -->
    <mt-button type="danger" size="large" @click="loaderMore">加载更多</mt-button>

 </div>

</template>

<script>
export default {
  data(){
    return {
      page: 1, // 当前页码
      goodsList: [],  // 商品列表
      isLoader: false // 是否加载完毕, 默认没有加载完毕
    }
  },
  created() {
    this.getGoodsList()
  },
  methods: {
    async getGoodsList(){
      const { data } = await this.$http.get("/api/getgoods?pageindex=" + this.page);
      if( data.status === 0 ){
        /* 判断接收到的数据是否为空, 如果为空 ,那么数据就是加载完了, 就不用再发起请求获取数据 */
        if( data.message.length < 10 ){
          this.isLoader = true;
        }
        /* 将数据内容拼接到数组中 */
        this.goodsList = this.goodsList.concat(data.message);
      }
    },
    /** 加载更多按钮的点击事件 **/
    loaderMore(){
      /* 判断是否加载完毕, 如果已经加载完毕那么就不继续发起请求 */
      if( this.isLoader ) return;
      this.page ++;
      this.getGoodsList();
    }
  }
}
</script>

<style lang="scss" scoped>
  /** 商品列表 **/
  .goods-list{
    display: flex;
    justify-content: space-between; // 盒模型的样式, 两边顶格, 让出中间的位置
    flex-wrap: wrap; // 盒模型的样式, 如果一行显示不够, 那么就换行显示
    padding: 7px;
    /** 商品项 **/
    .goods-item{
      width: 49%;
      margin-bottom: 7px;
      display: flex;
      flex-direction: column; // 盒模型的样式, 修改轴的方向, 默认是row(行)
      justify-content: space-between;
      /** 商品图片 **/
      img{
        width: 100%;
        min-height: 169px;
      }
      /** 商品标题 **/
      .good-title{
        font-size: 15px;
      }
      /** 商品内容 **/
      .info{
        background-color: #eee;
        p{
          margin: 2px;
        }
        /** 新的价格 **/
        .price-new{
          font-size: 15px;
          color: red;
        }
        /** 旧的价格 **/
        .price-old{
          font-size: 13px;
          text-decoration: line-through;
          padding: 7px;
        }
        .sell{
          font-size: 13px;
          display: flex;
          justify-content: space-between;
        }
      }
    }
  }
</style>